#ifndef PARSERENTRADA_H_
#define PARSERENTRADA_H_

#include <getopt.h>
#include <string>
#include <iostream>

#define ERROR -1
#define GRADO_FIJO 1
#define CAMINO_MINIMO 2

using namespace std;

class ParserEntrada{
public:
	ParserEntrada( int argc, char ** argv ){
		this->argc = argc;
		this->argv = argv;
	}

	//Setea los parámetros nombreLlegada, nombreSalida y gradoSeparación examinando los argumentos recibidos por el programa.
	//Si la llamada es incorrecta, devuelve ERROR. Si la llamada es correcta, devuelve GRADO_FIJO ó CAMINO_MINIMO, según
	//la consulta que deba resolverse.
	int ejecutar( string & nombreLlegada, string & nombreSalida, int & gradoSeparacion );

	//Muestra por pantalla ejemplos con llamadas correctas al programa
	void mostrarUsoCorrecto();

private:
	int argc;
	char ** argv;
};

#endif /* PARSERENTRADA_H_ */
